import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:my_app/conponate/user_info.dart';
import '../tools/http_server.dart';
import '../pages/searching_content.dart';


class SearchBarDelegate extends SearchDelegate<String> {
  // 搜索条右侧的按钮执行方法，我们在这里方法里放入一个clear图标。 当点击图片时，清空搜索的内容。

  @override
  List<Widget> buildActions(BuildContext context) {
    return [
      IconButton(icon: Icon(Icons.clear), onPressed: () {
        // 清空搜索内容
        query = "";
      },)
    ];
  }

  // 搜索栏左侧的图标和功能，点击时关闭整个搜索页面
  @override
  Widget buildLeading(BuildContext context) {
    return IconButton(
      icon: AnimatedIcon(
          icon: AnimatedIcons.menu_arrow, progress: transitionAnimation),
      onPressed: () {
        close(context, "");
      },
    );
  }

//   Future<String> _requestData(String queryContent, BuildContext context) async {
//     return await Future.delayed(Duration(seconds: 5), () {
//       // 模拟有数据
//       return "搜索关键词：queryContent，我是网络请求的结果：没有";
//       // 模拟加载出错
// //      throw AssertionError("ERROR");
//     });
//   }
  // 修改点击事件
  @override
  Widget buildSuggestions(BuildContext context) {
    // 输入时的推荐及搜索结果
    if(query.isEmpty){
      return FutureBuilder(
        future: HttpServer.history(UserInfo.userName),// userName
        builder: (BuildContext context, AsyncSnapshot<List> snapshot){
          if(snapshot.connectionState == ConnectionState.done){
            if(snapshot.hasError){
              return Text("渲染错误");
            }else{
              var data = snapshot.data as List;
              print("data: $data");
              return ListView.builder(
                  itemCount: data.length,
                  shrinkWrap: true,
                  itemBuilder: (BuildContext context, int index) {
                    return ListTile(
                      title:  Text('${(data)[index]}'),
                      trailing: IconButton(
                        icon: Icon(Icons.history),
                        onPressed: (){
                          query = (data)[index];
                        },
                      ),
                    );
                  }
              );
            }
          } else{
            return Align(
              child: CircularProgressIndicator(),
              alignment: Alignment.center,
            );
          }
        },
      );
    }
    return Container();
    // final suggestionList = query.isEmpty
    //     ? recentList
    //     : searchList.where((input) => input.startsWith(query)).toList();
    // return ListView.builder(
    //   itemCount: suggestionList.length,
    //   itemBuilder: (context, index) {
    //     // 创建一个富文本，匹配的内容特别显示
    //     return ListTile(
    //       title: RichText(
    //           text: TextSpan(
    //             text: suggestionList[index].substring(0, query.length),
    //             style: TextStyle(
    //                 color: Colors.black, fontWeight: FontWeight.bold),
    //             children: [
    //               TextSpan(
    //                   text: suggestionList[index].substring(query.length),
    //                   style: TextStyle(color: Colors.grey))
    //             ],
    //           )),
    //       onTap: () {
    //         // 主要修改了此处
    //         query = suggestionList[index];
    //         buildResults(context);
    //       },
    //     );
    //   },
    // );
  }
  // 修改buildResults方法
  @override
  Widget buildResults(BuildContext context) {
    // 搜索到内容了
    return SearchingContent(query);
  }
}





///================= 模拟后台数据 ========================
const searchList = [
  "搜索结果数据1-aa",
  "搜索结果数据2-bb",
  "搜索结果数据3-cc",
  "搜索结果数据4-dd",
  "搜索结果数据5-ee",
  "搜索结果数据6-ff",
  "搜索结果数据7-gg",
  "搜索结果数据8-hh"
];

const recentList = [
  "推荐结果1-ii",
  "推荐结果2-jj",
  "推荐结果3-kk",
  "推荐结果4-ll",
  "推荐结果5-mm",
  "推荐结果6-nn",
  "推荐结果7-oo",
  "推荐结果8-pp",
];
